package edu.scau.mis.pos.service;

import edu.scau.mis.pos.domain.Order;
import edu.scau.mis.pos.domain.OrderItem;
import java.util.List;

public interface IOrderService {

    // 分页查询订单列表
    List<Order> listOrders(String orderId, String payType, String startTime, String endTime, Integer status, int pageNum, int pageSize);

    // 查询订单数量（分页需要）
    int countOrders(String orderId, String payType, String startTime, String endTime, Integer status);

    // 根据订单号查询订单详情
    Order getOrderById(String orderId);

    // 根据订单号查询订单明细项
    List<OrderItem> getOrderItemsByOrderId(String orderId);

    // 修改订单金额、订单状态
    int updateOrder(Order order);

    // 删除单个订单（删除订单+对应订单项）
    int deleteOrder(String orderId);

    // 批量删除订单
    int deleteOrders(List<String> orderIds);

    // 退货（将金额设为0，状态改为已退款）
    int refundOrder(String orderId);

    // 换货（插入换货表+订单状态改为换货中）
    int changeOrder(String orderId);

    /**
     * 创建一个新订单
     * @param order 订单对象（可包含前端传的初始字段）
     * @return 是否创建成功
     */
    boolean createOrder(Order order);

    OrderItem getOrderItemInfoBySkuCode(String skuCode);

    int saveOrderItems(String orderId, List<OrderItem> items);

    public boolean processOrder(String orderId, String payType, Double amount, List<OrderItem> items, int status);

    boolean clearOrderItems(String orderId);

    boolean simulatePayment(String orderId, String payType, Double amount);



}
